home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / gnu / fpu881 / src6.zoo / _truncdf.s < prev    next >
Text File  |  1991-09-24  |  782b  |  39 lines

  1. # double float to single float conversion routine
  2. # oflow checking is omitted. The '881 returns a signed infinity.
  3. #
  4. # Written by M.Ritzert
  5. # 5.10.90
  6. # ritzert@dfg.dbp.de
  7. #
  8.  
  9. # addresses of the 68881 data port. This choice is fastest when much data is
  10. # transferred between the two processors.
  11.  
  12. comm =     -6
  13. resp =    -16
  14. zahl =      0
  15.  
  16. # waiting loop ...
  17. #
  18. # wait:
  19. # ww:    cmpiw    #0x8900,a1@(resp)
  20. #     beq    ww
  21. # is coded directly by
  22. #    .long    0x0c688900, 0xfff067f8
  23.  
  24.     .text
  25.     .even
  26.     .globl    __truncdfsf2, ___truncdfsf2
  27.  
  28. __truncdfsf2:
  29. ___truncdfsf2:
  30.     lea    0xfffa50,a0
  31.     movew    #0x5400,a0@(comm)    | load double to  fp0
  32.     cmpiw    #0x8900,a0@(resp)    | check
  33.     movel    a7@(4),a0@        | push arguments
  34.     movel    a7@(8),a0@        |
  35.     movew    #0x6400,a0@(comm)    | result (real) to d0
  36.     .long    0x0c688900, 0xfff067f8
  37.     movel    a0@,d0
  38.     rts
  39.